package cn.zqy.demo2.day12FunctionalInterface.Supplier;

import java.util.function.Supplier;

/*
    常用的函数式接口一【生产数据】
    java.util.function.Supplier<T>接口仅包含一个无参的方法：T get()。用来获取一个泛型参数指定类型的对象数据。

    Supplier<T>接口被称之为生产型接口,指定接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据
 */

public class Demo01Supplier {
    //定义一个方法,方法的参数传递Supplier<T>接口
    public static <T>T getString(Supplier<T> sup) {
        return sup.get();
    }

    //调用getString方法,方法的参数Supplier是一个函数式接口,所以可以传递Lambda表达式
    public static void main(String[] args) {
        String s = getString(() -> {
           return "aaa";
        });

        //优化Lambda表达式
        String s1 = getString(() -> "kkk");
        int b = getString(() -> 5);
        System.out.println(s);
        System.out.println(b);
    }
}
